/**
 * 
 */
package com.spider.silence.main;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import com.spider.silence.downloader.TianYaDownLoader;
import com.spider.silence.pool.TianYaDownLoaderPool;
import com.spider.silence.utils.PropertiesUtil;
import com.spider.silence.worker.TianYaModuleWorker;
import com.spider.silence.worker.TianYaWorker;
import org.apache.log4j.PropertyConfigurator;

/**
 * @title TianYaMain.java
 * @author liyuanguo
 * @time 2017年1月9日 上午10:32:50
 * @description
 * @version V1.0
 */
public class TianYaMain {
	public static void main(String[] args) throws Exception {
		PropertyConfigurator.configure( PropertiesUtil.getLogPro());//初始化日志环境
		//获取下载器池单例
		TianYaDownLoaderPool downLoaderPool=TianYaDownLoaderPool.getInstance();
		//从下载器池中获取下载器
		TianYaDownLoader downLoader=(TianYaDownLoader)downLoaderPool.fetchDownLoader(1000);
		//创建任务和把任务放到任务管理中心
		downLoader.generateTask();
		//初始化任务完后把下载器放回下载器中
		downLoaderPool.releaseDownLoader(downLoader);
		//创建线程池 
		ExecutorService pool =  Executors.newFixedThreadPool(3000);
		//创建多个工作者线程从下载器单例池中取下载器处理从任务中心取得的任务 用完后把下载器放回到下载器池中
		
		for(int i=0;i<Integer.valueOf(PropertiesUtil.getVal("TianYa.WorkerCount"));i++){
            pool.execute(new TianYaModuleWorker());
			pool.execute(new TianYaWorker());
        }
		
	}
}
